package design;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;

/**
 * @author: hero生仔
 * <p>
 * 蛮荒时期自建Redis服务 很多服务用到了Redis 需要一起升级；需要兼容集群A和集群B，便于灾备；两套集群提供的接口和方法各有差异，需要做适配
 * 不能影响到目前正常运行的系统
 *
 *
 * 模拟 Redis 功能，也就是假定目前所有的系统都在使用该服务
 */
public class RedisUtils {
    private Logger logger = LoggerFactory.getLogger(RedisUtils.class);

    private Map<String, String> dataMap = new ConcurrentHashMap<>();

    public String get(String key) {
        logger.info("Redis 获取数据的 key 为：{}", key);
        return dataMap.get(key);
    }

    public void set(String key, String val) {
        logger.info("Redis 写入的数据为 key为 {}，val为 {}", key, val);
        dataMap.put(key, val);
    }

    public void set(String key, String val, long timeout, TimeUnit timeUnit) {
        logger.info("Redis 写入的数据为 key为 {}，val为 {}，time为 {}，timeUtil为 {}", key, val, timeout, timeUnit);
        dataMap.put(key, val);
    }

    public void del(String key) {
        logger.info("Redis 删除的数据为 key为 {}", key);
        dataMap.remove(key);
    }
}
